Common software systems are increasingly distributed, composed of multiple software systems that execute simultaneously on many computers. These attributes complicate software lifecycle management, such as reliably distributing artifacts, launching, monitoring, and relaunching software processes. Traditional methods deal only with lifecycle management on a single computer.